"""
用户信息表
"""

from app.db import db  # 从独立的 db 模块导入


class User(db.Model):
    # 定义表名
    __tablename__ = 'user_info'
    # 主键
    id = db.Column(db.Integer, primary_key=True)
    # 生日
    birthday = db.Column(db.Date)
    # 用户名
    username = db.Column(db.String(20), unique=True, nullable=False)
    # 绑定邮箱
    email = db.Column(db.String(120), unique=True, nullable=False)
    # 登录密码[哈希值加密]，默认123456.
    password = db.Column(db.String(60), nullable=False)
    # 注册时间
    reg_time = db.Column(db.DateTime, nullable=False)

    def to_dict(self):
        """将模型实例转换为字典，方便后续处理（如转换为DataFrame或JSON）"""
        base_dict = {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
        # 单独处理日期字段：格式化 charger_date 为 年月日
        if base_dict.get('date'):
            # 格式1：2025-09-01（推荐，符合ISO标准，前端易处理）
            base_dict['date'] = base_dict['date'].strftime('%Y-%m-%d')
        return base_dict
